package com.aidex.biz.service;

import com.aidex.biz.domain.UserInfo;
import com.alibaba.fastjson.JSONObject;

/***
 *  微信用户登录Service接口
 * @author sean
 * @email 2074844820@qq.com
 * @date 2022-10-07
 */
public interface WeChatLoginService {

    public void setAppId(String appId, String appSecret);

    /**
     * 获取token
     */
    public String getAccessToken();

    /**
     * 获取openId
     *
     * @param code
     * @return
     */
    public JSONObject getOpenId(String code);

    /**
     * 获取手机号码
     *
     * @param code
     * @return
     */
    public String getphoneNumber(String code);

    /**
     * 用户登录
     *
     * @param userInfo
     * @return
     */
    public UserInfo login(UserInfo userInfo);

    /**
     * 用户注册
     *
     * @param userInfo
     * @return
     */
    public UserInfo register(UserInfo userInfo);

    /**
     * @param url
     * @return
     */
    public String getScheme(String url, String query);


    public String getXcxUrl();


    /**
     * 该接口用于获取小程序码，适用于需要的码 数量极多的业务场景。通过该接口生成的小程序码，永久有效，数量暂无限制
     * @param scene "a=1"
     * @param url
     * @return
     */
    public String getUnlimitedQRCode(String scene, String url);


    /**
     * h5 登录用户授权链接
     * @param appid 公众号APPID
     * @param scope 授权作用域 snsapi_base（只能拿openid）和snsapi_userinfo(昵称、性别)
     * @param redirectUri 授权后重定向的回调链接地址
     * @param state 重定向后会带上state参数，开发者可以填写a-zA-Z0-9的参数值，最多128字节
     */
    public String getWxH5Auth2(String appid,String scope,String redirectUri,String state);

    /**
     * 公众号h5登录获取token
     * @param appid 公众号APPID
     * @param secret 公众号的appsecret
     * @param code 获取的code参数
     *
     */
    public String getMpH5AccessToken(String appid,String secret,String code);


}